const { defineConfig } = require('@vue/cli-service')

// 引入插件 compression-webpack-plugin
const CompressionWebpackPlugin = require("compression-webpack-plugin")
// 匹配此 { RegExp } 的资源
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i

module.exports = defineConfig({
  publicPath: "./",
  productionSourceMap: false, // 去除vue 打包后 js 目录下生成的 .map 文件，用于加速生产环境的构建
  assetsDir: 'static', // 配合 flask 后端打包路径
  devServer: {
    proxy: 'http://localhost:5000/'
  },
	pages: {
		index: {
			entry: 'src/main.js',
        	title: '疫情守望者', 
		}
	},
  configureWebpack: config => {
    const plugins = []
    // start 生成 gzip 压缩文件
    plugins.push(
        new CompressionWebpackPlugin({
          filename: '[path][base].gz', //目标资源名称
          algorithm: "gzip",
          test: productionGzipExtensions, //处理所有匹配此 {RegExp} 的资源
          threshold: 10240,//只处理比这个值大的资源。按字节计算(楼主设置10K以上进行压缩)
          minRatio: 0.8 //只有压缩率比这个值小的资源才会被处理
        })
    );
    // End 生成 gzip 压缩文件
    config.plugins = [...config.plugins, ...plugins];
  }
})
